首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用户输入带有电子替代Window.Prompt()的Window.Prompt

用户输入带有电子替代Window.Prompt()的Window.Prompt
EN

Stack Overflow用户
提问于 2018-03-22 10:31:38
回答 1查看 2K关注 0票数 2

首先,我已经问了这个问题的一个更简单的版本,然后在这里中对它进行了太多的研究。然而,当我搜索东西时,事情变得更复杂了,我可以更多地描述它。

我正试图与谷歌的Blockly一起创建一个电子应用程序。在Blockly的域中重命名变量会在用户浏览器中打开一个提示,询问新变量的名称,因为您可以看到在自己的网站上 (单击'Count‘并选择'Rename变量.’)。

问题是:电子不支持window.prompt(),如果我让代码按原样运行,它也不会做任何事情,所以,在搜索了一点之后,我了解到可以重写Blockly.prompt来使用自己的代码。我猜:所以你可以用一个替代window.prompt()的方法

我安装了electron-prompt,并试图使用它在新的提示窗口中获取用户的输入,以便将其发送回Blockly的处理重命名的核心函数。我想做的是:

代码语言:javascript
运行
复制
var prompt = require('electron-prompt');
var setPrompt = function()
{ 
    return prompt
    ({
        title: 'Renaming',
        label: 'Renaming variable to:',
        type: 'input'
    })
};

var getPrompt = function()
{
    return setPrompt().then(function(value){return value})
}

var promptReturn = function()
{
    return getPrompt().then(function(value){return value})
}

Blockly.prompt = function(message, defaultValue, callback)
{
    callback(promptReturn().then(function(value){return value}));
};

编辑:来自electron-prompt的源代码是这里,通过查看它和我试图从这里修改的信息,我修改了上面的代码,推断prompt返回了一个承诺。然而,callback in Blockly.prompt似乎并不等待通过setPrompt()中打开的模式输入并抛出一个错误,但是如果我使用一个简单的函数只是在callback中返回一个字符串,它就会按预期的方式工作。

现在,我感到困惑的是,是我自己仍然错误地使用了承诺,还是callback in Blockly.prompt不支持“等待承诺”.

希望这有助于解释我在查找有关这个问题的更多信息后尝试使用的内容。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-24 06:44:40

我设法解决了这个问题,我正在发布它,以防有人需要一个关于Blockly.prompt重写的明确答案。在重写时,callback函数似乎必须返回新变量的字符串,因此我尝试在重写过程中使用promise,并调用一个简单的函数来应用then()的值,如下所示:

代码语言:javascript
运行
复制
var prompt = require('electron-prompt');
var renameVar = function(name)
{
    return name;
}

Blockly.prompt = function(msg, defaultValue, callback)
{
    prompt
    ({
        title: 'Renaming',
        label: 'Renaming variable to:',
        type: 'input'
    }).then((name)=>{callback(renameVar(name))})
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49426346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档