Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有一个“问题”;“最佳”;提示和调用方法函数的方法?_Javascript_Node.js_Es6 Promise_Node Promisify - Fatal编程技术网

Javascript 是否有一个“问题”;“最佳”;提示和调用方法函数的方法?

Javascript 是否有一个“问题”;“最佳”;提示和调用方法函数的方法?,javascript,node.js,es6-promise,node-promisify,Javascript,Node.js,Es6 Promise,Node Promisify,在我看来,有三种方法可以一次性提示和调用方法函数: const { promisify } = require('util'); const obj = { method: function (param, callback) { // Do something async with `this` callback(err, result); } }; promisify(obj.method.bind(obj))(arg).then(doSo

在我看来,有三种方法可以一次性提示和调用方法函数:

const { promisify } = require('util');

const obj = {
    method: function (param, callback) {
        // Do something async with `this`
        callback(err, result);
    }
};

promisify(obj.method.bind(obj))(arg).then(doSomething); // {1}
promisify(obj.method).bind(obj)(arg).then(doSomething); // {2}
promisify(obj.method).call(obj, arg).then(doSomething); // {3}

这些方法中有哪一种比其他方法更受欢迎,还是它们都同样有效?每种方法的优缺点是什么?

我认为这取决于该方法是原型方法还是实例方法,如果您只调用promisified版本一次或多次,以及(在后一种情况下)每次调用同一个实例还是不同的实例。