这是我的代码的简短版本。
var Promise = require('bluebird'); var fs = Promise.promisifyAll(require("fs")); if (conditionA) { fs.writeFileAsync(file, jsonData).then(function() { return functionA(); }); } else { functionA(); }
这两个条件都调用functionA。有办法避免其他情况吗?我可以,fs.writeFileSync但是我正在寻找一种非阻塞的解决方案。
functionA
fs.writeFileSync
我想你在找
(conditionA ? fs.writeFileAsync(file, jsonData) : Promise.resolve()) .then(functionA);
这是短的
var waitFor; if (conditionA) waitFor = fs.writeFileAsync(file, jsonData); else waitFor = Promise.resolve(undefined); // wait for nothing, // create fulfilled promise waitFor.then(function() { return functionA(); });