我正在学习节点JS。我读过一些文章,但我找不到合适的答案。
这是语法
'use strict';
var express = require('express'),
app = express();
var cors = require('cors');
let request = require('request');
let async = require('async');
let q = require('q');
let fs = require('fs');
let BC_STORE_URL = '*****************************';
let BC_USER = '********';
let BC_TOKEN = '******************************';
app.get('/api/:sku', function(req, res, next) {
getData('products?sku=' + productSku).then((resData) => {
});
})
let getData = function(storeField) {
let listInfo = [];
let deferred = q.defer();
request(getDataOptions, (getDataOptionsError, getDataOptionsResponse,
getDataOptionsData) => {
deferred.resolve(responseData);
}
}
答案 0 :(得分:1)
q.defer()用于创建延迟,用于处理promises。 promise将告诉调用者该方法在一段时间内返回一些数据(异步)。然后调用者可以在promise上声明逻辑,然后在返回数据时执行()。
您应该从getData函数返回一个promise,然后调用者可以使用()
let getData = function(storeField) {
let listInfo = [];
let deferred = q.defer();
request(getDataOptions, (getDataOptionsError, getDataOptionsResponse,
getDataOptionsData) => {
deferred.resolve(responseData);
}
return deferred.promise;
}
答案 1 :(得分:0)
以下是对您答案的更好解释: Q vs native promises