请考虑以下以串行/顺序方式读取文件数组的代码.readFiles返回一个promise,只有在按顺序读取所有文件后才会解析.
var readFile = function(file) {
... // Returns a promise.
};
var readFiles = function(files) {
return new Promise((resolve, reject) =>
var readSequential = function(index) {
if (index >= files.length) {
resolve();
} else {
readFile(files[index]).then(function() {
readSequential(index + 1);
}).catch(reject);
}
};
readSequential(0); // Start!
});
};
Run Code Online (Sandbox Code Playgroud)
上面的代码可以工作,但我不喜欢按顺序进行递归递归.是否有一种更简单的方法可以重写此代码,以便我不必使用我的奇怪readSequential功能?
最初我试图使用Promise.all,但这导致所有readFile调用同时发生,这不是我想要的:
var readFiles = function(files) {
return Promise.all(files.map(function(file) {
return readFile(file);
}));
};
Run Code Online (Sandbox Code Playgroud) 我想列出我的rails 3应用程序中所有已定义的辅助路径功能(由路由创建),如果可能的话.
谢谢,
如上所述这里,我继承PreferenceFragment并显示它的活动中.该文档解释了如何在此处监听首选项更改,但前提是您将PreferenceActivity子类化.由于我不这样做,我如何监听偏好变化?
我已经尝试在我的PreferenceFragment中实现OnSharedPreferenceChangeListener但它似乎不起作用(onSharedPreferenceChanged似乎永远不会被调用).
到目前为止这是我的代码:
SettingsActivity.java
public class SettingsActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Display the fragment as the main content.
getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit();
}
}
Run Code Online (Sandbox Code Playgroud)
SettingsFragment.java
public class SettingsFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener
{
public static final String KEY_PREF_EXERCISES = "pref_number_of_exercises";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preferences);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key)
{
//IT NEVER GETS …Run Code Online (Sandbox Code Playgroud) android android-preferences sharedpreferences android-fragments android-activity
在Python中,如果我在父函数中有子函数,那么每次调用父函数时子函数是否"初始化"(创建)?将函数嵌套在另一个函数中是否存在任何开销?
如何在另一个Object3D中获取Object3D的全局位置?
建立:
var parent = new THREE.Object3D();
parent.position.set(100, 100, 100);
var child = new THREE.Object3D();
child.position.set(100, 100, 100);
parent.add(child);
scene.add(parent);
Run Code Online (Sandbox Code Playgroud)
笔记:
我认为这将是这样做的方式:
console.log(child.localToWorld(parent.position));
Run Code Online (Sandbox Code Playgroud)
...但它给了我(100,100,100),而不是(200,200,200).
在Angular 1.2中,ngRoute是一个单独的模块,因此您可以使用其他社区路由器ui.router.
我正在编写一个开源模块,旨在为多种不同的路由器实现工作.那么如何检查哪个路由器已加载或存在?
我正在我的模块中的工厂内执行以下操作,但它不能按照我期望的方式工作:
if (angular.module("ngRoute"))
// Do ngRoute-specific stuff.
else if (angular.module("ui.router"))
// Do ui.router-specific stuff.
Run Code Online (Sandbox Code Playgroud)
对于未加载的模块,它会引发错误.例如,如果应用程序正在使用ui.router,则会为ngRoute检查引发以下错误:
未捕获错误:[$ injector:nomod]模块'ngRoute'不可用!您要么错误拼写了模块名称,要么忘记加载它.如果注册模块,请确保将依赖项指定为第二个参数.
我有一些输入,如下所示:
A,B,C,"D12121",E,F,G,H,"I9,I8",J,K
Run Code Online (Sandbox Code Playgroud)
逗号分隔值可以按任何顺序排列.我想把字符串分成逗号; 但是,如果某些东西在双引号内,我需要它来忽略逗号并去掉引号(如果可能的话).所以基本上,输出将是这个字符串列表:
['A', 'B', 'C', 'D12121', 'E', 'F', 'G', 'H', 'I9,I8', 'J', 'K']
Run Code Online (Sandbox Code Playgroud)
我已经看过其他一些答案,而且我认为正则表达式会是最好的,但是我很难想出来.
我已经实现了我自己的PreferenceFragment子类(在此详述),并希望在其中监听偏好更改.PreferenceFragment为您提供了两种执行此操作的方法:
getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
Run Code Online (Sandbox Code Playgroud)
和
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
Run Code Online (Sandbox Code Playgroud)
应该使用哪一个?有什么不同?我真的不明白Android文档中的区别.
我在PreferenceFragment中获取一些自定义DialogPreference子类时遇到了一些麻烦,以便在旋转屏幕时保持可见.我在使用PreferenceActivity时没有遇到这个问题,因此我不知道它是Android错误还是代码问题,但我希望有人确认他们是否有相同的体验.
要对此进行测试,首先要创建一个包含至少一个DialogPreference的首选项屏幕(哪个子类无关紧要).然后在PreferenceActivity中显示它.运行应用程序时,请按DialogPreference以显示其对话框.然后旋转屏幕以使方向发生变化.对话框是否仍然可见?
然后尝试相同,但使用PreferenceFragment显示您的首选项而不是PreferenceActivity.再次,旋转屏幕时对话框是否仍然可见?
到目前为止,我发现如果使用PreferenceActivity,对话框将保持可见,但如果使用PreferenceFragment则不会.查看DialogPreference的源代码,似乎正确的行为是对话框保持可见,因为在屏幕isDialogShowing重定向时onSaveInstanceState()调用时会保存状态信息.因此,我认为一个错误可能会阻止PreferenceFragment(及其中的所有内容)恢复该状态信息.
如果它是Android错误,那么它具有深远的影响,因为任何使用PreferenceFragment的人都无法保存和恢复状态信息.
有人可以确认吗?如果它不是一个错误,那么发生了什么?
android preferenceactivity android-preferences android-fragments dialog-preference
我从一个模块导出以下ES6类:
export class Thingy {
hello() {
console.log("A");
}
world() {
console.log("B");
}
}
Run Code Online (Sandbox Code Playgroud)
并从另一个模块导入它:
import {Thingy} from "thingy";
if (isClass(Thingy)) {
// Do something...
}
Run Code Online (Sandbox Code Playgroud)
如何检查变量是否为类?不是类实例,而是类声明?
换句话说,我将如何isClass在上面的例子中实现该功能?