1
我已經創建了一個生成器函數遞歸檢查一個字符串並返回一個解析的輸出。我正在嘗試使用koa-request在生成器中發出請求,但是它正在返回undefined。如何在遞歸生成器函數中產生請求?
var parseUserExpression = function *() {
var body = yield bodyParser.json(this);
var fnString = body.ts;
var res = yield parseRulesAndFunctions(fnString, null);
this.body = res;
};
// Recursive function
var parseRulesAndFunctions = function *(aStr, start) {
var res;
start = start || 0;
var fnDetails = getFnDetails(aStr, start);
if (fnDetails.fnType === 'run') {
var url = yield request(fnDetails.url);
res = aStr.slice(0, fnDetails.startIndex) + 'yield request(' + fnDetails.fnName + ',' + fnDetails.fnParams + aStr.slice(fnDetails.endIndex);
}
// Recurse
if (res.indexOf('call') === -1 && res.indexOf('run') === -1) {
return res;
}
return parseRulesAndFunctions(res, fnDetails.paramEnd).next();
}
當產生請求(fnDetails.url)時返回Promise而不是字符串。
爲什麼包含代碼的結果字符串?只是好奇。 – Bergi
這是一個允許非開發人員通過我們的用戶界面創建簡單工具的工具。 –