Put number first 函数响应:Promise { <pending> }
Put number first function respond with this: Promise { <pending> }
我正在使用以下函数将一些数据放入 dynamo DB table 但我收到的响应是 Put number first 函数响应如下:Promise { pending }
这是代码
async function putNumberFirst(phoneNumber) {
return new Promise(function(resolve, reject) {
console.log("inside put Numer function");
let params = {
TableName: process.env.CHAT_DATA_TABLE,
Item: {
'phoneNumber': phoneNumber
}
};
console.log("PARAMS", params);
docClient.put(params, function(err, results) {
if (err) {
console.error(
"Unable to put new connection data. Error:",
JSON.stringify(err, null, 2)
);
reject();
}
else {
console.log("Put succeeded.", results);
resolve("Success!");
}
});
});
}
任何帮助将不胜感激
您混淆了异步函数、承诺和回调。我建议您首先尝试了解这些非常重要的主题:https://towardsdev.com/callback-vs-promises-vs-async-await-29572e4a0c8
这是我的 编辑 async/await
你的代码示例:
const putNumberFirst = async (phoneNumber) => {
const params = {
TableName: process.env.CHAT_DATA_TABLE,
Item: { phoneNumber }
};
try {
console.log("Params: ", params);
const results = await docClient.put(params).promise();
console.log('Put succeeded: ', results);
return results;
} catch (err) {
console.error('Unable to put new connection data. Error:', JSON.stringify(err, null, 2));
throw err;
}
}
然后,从任何你想调用putNumberFirst
函数的地方,你需要等待响应:
await putNumberFirst(number);
请记住,await
仅在 async
函数中可用,您可能需要相应地重组代码。
您可以使用 then/catch
或回调而不是 async/await
,但除非绝对必要,否则请不要混淆这些东西。异步代码是 JS 的基础,了解它的工作原理绝对至关重要。投入一些时间,这将是值得的。
我正在使用以下函数将一些数据放入 dynamo DB table 但我收到的响应是 Put number first 函数响应如下:Promise { pending } 这是代码
async function putNumberFirst(phoneNumber) {
return new Promise(function(resolve, reject) {
console.log("inside put Numer function");
let params = {
TableName: process.env.CHAT_DATA_TABLE,
Item: {
'phoneNumber': phoneNumber
}
};
console.log("PARAMS", params);
docClient.put(params, function(err, results) {
if (err) {
console.error(
"Unable to put new connection data. Error:",
JSON.stringify(err, null, 2)
);
reject();
}
else {
console.log("Put succeeded.", results);
resolve("Success!");
}
});
});
}
任何帮助将不胜感激
您混淆了异步函数、承诺和回调。我建议您首先尝试了解这些非常重要的主题:https://towardsdev.com/callback-vs-promises-vs-async-await-29572e4a0c8
这是我的 编辑 async/await
你的代码示例:
const putNumberFirst = async (phoneNumber) => {
const params = {
TableName: process.env.CHAT_DATA_TABLE,
Item: { phoneNumber }
};
try {
console.log("Params: ", params);
const results = await docClient.put(params).promise();
console.log('Put succeeded: ', results);
return results;
} catch (err) {
console.error('Unable to put new connection data. Error:', JSON.stringify(err, null, 2));
throw err;
}
}
然后,从任何你想调用putNumberFirst
函数的地方,你需要等待响应:
await putNumberFirst(number);
请记住,await
仅在 async
函数中可用,您可能需要相应地重组代码。
您可以使用 then/catch
或回调而不是 async/await
,但除非绝对必要,否则请不要混淆这些东西。异步代码是 JS 的基础,了解它的工作原理绝对至关重要。投入一些时间,这将是值得的。