私のgoogle fooはこれらのキーワードで私に失敗しています。Nodej関数を受け取り実行する(ラッパーを作成する)関数を作成する
私は、作成している関数の回りに同じコード構造体を何度も繰り返して入力する必要がないので、実行したい関数の周りにラッパーを作成することを考えました。これは厄介で、私がやっていることでこれを "仕事"にする方法を理解できないようです。これは私が今までに思いついたものであり、間違っていますが、ここに貼り付けて基本的な考え方をすることができます。
私はブルーバードの約束とコルーチンを使用しています。
ラッパー:に供給する
'use strict';
const Promise = require('bluebird');
const {coroutine: co} = require('bluebird'); //Alias coroutine
module.exports = function(func) {
return new Promise((resolve, reject)=>{
co(function*() {
try {
//Want to execute the function here
return func();
} catch(e) {
reject(e);
}
})()
});
}
機能:
'use strict';
const Promise = require('bluebird');
const wrapper = require('./lib.js');
let arg1 = 'arg1';
wrapper(function(){
//Print the argument then resolve
console.log(arg1);
resolve(arg1);
}).then((data)=>{
console.log('done');
console.log(data);
})
私は間違ってトラックにアム?私は解決または議論で誤りを続けています。 本質的に私は、常に約束を宣言し、共同して、私が書いた各機能のために試してみる必要はありません。
はresolve'が定義されていない 'のように思えますか?あなたは 'Promise.resolve'を使用するつもりでした – Ananth
私の考えは、元の関数で解決策を呼び出すことでした。ラッパーが何をするのかを知っていると思っていました... – supreme0100
funcラッパーですか?あなたはファンドに解決を渡すことができます – guest271314