我有一个文件
demo.js
具有等待像这样从数据库中获取数据的功能
from kivy.base import runTouchApp
from kivy.lang import Builder
runTouchApp(Builder.load_string("""
BoxLayout:
orientation: 'vertical'
AnchorLayout:
size_hint: 1, 0.75
anchor_x: 'left'
anchor_y: 'top'
GridLayout:
size_hint: 0.2, 1
canvas.before:
Color:
rgba: 1, 0, 0, 1
Rectangle:
size: self.size
pos: self.pos
cols: 3
row_force_default: True
row_default_height: 40
Button:
text: "X"
Button:
text: "X"
Button:
text: "X"
Button:
text: "X"
Button:
text: "X"
Button:
text: "X"
AnchorLayout:
anchor_x: 'right'
anchor_y: 'top'
BoxLayout:
orientation: 'vertical'
size_hint: 0.8, 1
canvas.before:
Color:
rgba: 0, 1, 0, 1
Rectangle:
size: self.size
pos: self.pos
Label:
text: "HELLO..."
Label:
text: "WORLD..."
AnchorLayout:
size_hint: 1, 0.25
anchor_x: 'left'
anchor_y: 'bottom'
canvas.before:
Color:
rgba: 0, 0, 1, 1
Rectangle:
size: self.size
pos: self.pos
Label:
text: "FOOTER"
"""))
因此,当我通过外壳程序/命令行测试此功能时,不会等待该功能完成。
经过这样的测试
BoxLayout
注意:学生是模特, 从另一个文件发送的响应,这就是为什么不在这里。它不是中间件。猫鼬用作数据库工具
答案 0 :(得分:0)
您需要await
或.then
中的功能。让我举个例子:
names.js
demo.js
demo.js
exports.findNames = async () => {
const names= await new Promise((res,rej)=>{
setTimeout(()=>{
res([1,2,3])
}, 100);
});
console.log('Names:', names);
};
输出
const name = require('./names');
(async ()=>{
await name.findNames();
})();