From a2359a7c229db3bc111f47a86c889216951162ef Mon Sep 17 00:00:00 2001 From: Angelos Chalaris Date: Sun, 31 Dec 2017 14:20:21 +0200 Subject: [PATCH] Add isPromise snippet --- snippets/isPromise.md | 16 ++++++++++++++++ tag_database | 1 + 2 files changed, 17 insertions(+) create mode 100644 snippets/isPromise.md diff --git a/snippets/isPromise.md b/snippets/isPromise.md new file mode 100644 index 000000000..7a6e32d3f --- /dev/null +++ b/snippets/isPromise.md @@ -0,0 +1,16 @@ +### isPromise + +Returns `true` if an object looks like a [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise), `false` otherwise. + +Check if the object is not `null`, its `typeof` matches either `object` or `function` and if it has a `.then` property, which is also a `function`. + +```js +const isPromise = obj => + obj !== null && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'; +``` + +```js +isPromise({then:function () {return ''}}); // true +isPromise(null); // false +isPromise({}); // false +``` diff --git a/tag_database b/tag_database index e2bb75c7e..5c9edee5d 100644 --- a/tag_database +++ b/tag_database @@ -73,6 +73,7 @@ isFunction:utility isNull:utility isNumber:utility isPrime:math +isPromise:utility isString:utility isSymbol:utility JSONToDate:date