UNPKG

wsemi

Version:

A support package for web developer.

40 lines (33 loc) 905 B
/** * 判斷是否為Promise * * Unit Test: {@link https://github.com/yuda-lyu/wsemi/blob/master/test/ispm.test.mjs Github} * @memberOf wsemi * @param {*} v 輸入任意資料 * @returns {Boolean} 回傳判斷布林值 * @example * * console.log(ispm('1.25')) * // => false * * console.log(ispm(new Promise(function() {}))) * // => true * */ function ispm(v) { let b let c = Object.prototype.toString.call(v) b = c === '[object Promise]' if (b) { return true //若為[object Promise]則直接回傳true } if (c !== '[object Function]') { return false //若不是[object Promise]也不是[object Function]則直接回傳false } try { b = typeof v.subscribe !== 'function' && typeof v.then === 'function' //可偵測async function } catch (err) {} return b } export default ispm