我正在努力了解诺言链的实际运作方式。
我正在尝试调用API A-以获取所有书籍。然后,我想调用API B-为我提供书籍说明。
但是在Bookdescribe方法上(请参见代码的最后部分),当我进行调试时,Promise值是未定义的。
如何将值返回到/ getAllbooks路径?
index.js
.get('getAllBooks', '/getAllBooks', async (ctx) => {
try {
var util = require('../util')
var result = await util.getAllBooks(conn)
}
util.js-getAllbooks方法
async function getAllBooks(conn) {
return new Promise((resolve, reject) => {
var books = []
conn.describeGlobal(function (err, res) {
if (err) {
return console.log(err)
}
console.log('No of Objects ' + res.sobjects.length)
res.sobjects.forEach(function (sobject) {
if (sobject.type == "book"){
books.push(sobject) }
})
resolve(books)
})
}).then(result => booksDescribe(conn, result))
}
util.js-booksDescribe方法
async function booksDescribe(conn, result) {
var i = 0;
var something = await Promise.all(result.map(async (item) =>{
await conn.sobject(item).describe(function (err, meta) {
if (err) {
return console.log("What? " + err);
}
const content = meta.description
return content
})
}))
}
答案 0 :(得分:0)
async function booksDescribe(conn, result) {
var i = 0;
var something = await Promise.all(result.map(async (item) =>{
await conn.sobject(item).describe().then(response => {
return(response)
})
}))
}